Data storage systems are arrangements of hardware and software that include storage processors coupled to arrays of non-volatile storage devices, such as magnetic disk drives, electronic flash drives, and/or optical drives, for example. The storage processors service storage requests, arriving from host machines, which specify files or other data elements to be written, read, created, deleted, etc. Software running on the storage processors manages incoming storage requests and performs various data processing tasks to organize and secure the data elements stored on the non-volatile storage devices. Filesystems are generally built upon volumes. In some data storage systems, slices of data storage may be provisioned to a volume that supports a filesystem on an as-needed basis. As is known, slices are uniformly-sized storage extents, which may be 256 megabytes (MB) or 1 gigabyte (GB), for example. When a filesystem requires additional storage space to accommodate incoming writes, a data storage system may provide the additional space by provisioning another slice to the volume that backs the filesystem. The filesystem subdivides these slices into data blocks which may be 4 kilobytes or 8 kilobytes, for example.
Some data storage systems employ a de-duplication feature so that identical blocks of data on two different volumes need not be physically stored on disk in two different locations. Rather, one volume includes a pointer to the location on disk where the other volume has stored the same data block.